#include <stdio.h>
#include <string.h>
#include "gestion_patient.h"
#include "patient.h"
void ajouter_patient(FILE* FICHE_PATIENT,FILE *FIL_ATTENTE,int *NBR, int NBRL)
{
int ID; char NOM_FICHIER[30],NOM_PAT[30],PRENOM_PAT[30],rep[2];
if (*NBR<=NBRL)
{FICHE_PATIENT = fopen ("patient.txt" , "a" );
printf("Entrez l identite du patient: ");	scanf("%d", &ID);
printf("Entrez le prenom du patient : ");	scanf("%s", PRENOM_PAT);
printf("Entrez le nom du patient : ");		scanf("%s", NOM_PAT);
fprintf(FICHE_PATIENT, "%d %s %s\n",ID,PRENOM_PAT,NOM_PAT);
(*NBR)++;
}
else {
	do
	{
	printf("\nvoulez vous ajouter le patient a la fil attente o/n ? ");
	scanf("%s",rep);
	}
	while(strcmp(rep,"o") && strcmp(rep,"n"));
		if (strcmp(rep,"o") == 0)
		{
		FIL_ATTENTE = fopen ("filattente.txt" , "a" );
		printf("Entrez l identite du patient: ");	scanf("%d", &ID);
		printf("Entrez le prenom du patient : ");	scanf("%s", PRENOM_PAT);
		printf("Entrez le nom du patient : ");		scanf("%s", NOM_PAT);
		fprintf(FIL_ATTENTE, "%d %s %s\n",ID,PRENOM_PAT,NOM_PAT);
		fclose(FIL_ATTENTE);
		}
	}
fclose(FICHE_PATIENT);
}

void supprimer_patient(FILE *FICHE_PATIENT,FILE *FIL_ATTENTE,int ids, int *NBR, int NBRL)
{ 
int ID; char NOM_FICHIER[30],NOM_PAT[30],PRENOM_PAT[30];
FILE *PT;
FICHE_PATIENT = fopen ("patient.txt", "r");
PT = fopen ("pat_temp.txt", "w");

		while (fscanf (FICHE_PATIENT, "%d %s %s",&ID,NOM_PAT,PRENOM_PAT) == 3)
		if (ID != ids)
		fprintf (PT, "%d %s %s\n",ID,NOM_PAT,PRENOM_PAT);
fclose (FICHE_PATIENT);
fclose (PT);
FICHE_PATIENT = fopen("patient.txt", "w+");
PT = fopen("pat_temp.txt","r");
 	while (fscanf (PT, "%d %s %s",&ID,NOM_PAT,PRENOM_PAT) == 3)
	fprintf (FICHE_PATIENT, "%d %s %s\n",ID,NOM_PAT,PRENOM_PAT);
(*NBR)--;
if (*NBR=NBRL-1)
{
FIL_ATTENTE = fopen("filattente.txt", "r");
FICHE_PATIENT = fopen("patient.txt", "a");
fscanf (FIL_ATTENTE, "%d %s %s",&ID,NOM_PAT,PRENOM_PAT);
fprintf(FICHE_PATIENT, "%d %s %s\n",ID,PRENOM_PAT,NOM_PAT);
fclose (FIL_ATTENTE); (*NBR++);
}

fclose (FICHE_PATIENT);
fclose (PT);

}

int afficher_patient_F(FILE *FICHE_PATIENT)
{int ID; char NOM_FICHIER[30],NOM_PAT[30],PRENOM_PAT[30];
FICHE_PATIENT = fopen("patient.txt", "r");
printf("\n***********\n"); 
	while (!feof(FICHE_PATIENT))
	{
	fscanf(FICHE_PATIENT, "%d\n",&ID);
	fscanf(FICHE_PATIENT, "%s\n", NOM_PAT);
	fscanf(FICHE_PATIENT, "%s\n", PRENOM_PAT);
	printf("%d %s %s \n",ID,NOM_PAT,PRENOM_PAT);
	}
fclose(FICHE_PATIENT);
return 0;
}

void saisir_patient_F(FILE *FICHE_PATIENT,FILE *FIL_ATTENTE,int *NBR, int NBRL)
{
int ID; char NOM_FICHIER[30],NOM_PAT[30],PRENOM_PAT[30],rep[2];
FICHE_PATIENT = fopen("patient.txt", "w"); *NBR=1;
	if (*NBR<=NBRL)
	{
	printf("Entrez l identite de patient : ");
	scanf("%d", &ID);
	printf("Entrez le prenom du patient : ");
	scanf("%s", PRENOM_PAT);
	printf("Entrez le nom du patient : ");
	scanf("%s", NOM_PAT);
	
	do
	{
	printf("\ntapez o pour continuer la saisie  ");
	scanf("%s",rep);
	}
	while(strcmp(rep,"o") && strcmp(rep,"n"));
	
	fprintf(FICHE_PATIENT, "%d %s %s\n",ID,PRENOM_PAT,NOM_PAT);
	while (strcmp(rep,"o")==0)
	{
	printf("Entrez l identite du patient : ");
	scanf("%d", &ID);
	printf("Entrez le prenom du patient : ");
	scanf("%s", PRENOM_PAT);
	printf("Entrez le nom du patient : ");
	scanf("%s", NOM_PAT);
	printf("\ntapez o pour continuer la saisie  ");
	scanf("%s",rep);
	fprintf(FICHE_PATIENT, "%d %s %s\n",ID,PRENOM_PAT,NOM_PAT);
	(*NBR)++;
	}
	}
		if(*NBR>NBRL)
		{
		printf("vous avez acceder a la Fil d\'attente");
		FIL_ATTENTE = fopen("patient.txt", "w");
		do
		{
		printf("\ntapez o pour continuer la saisie  ");
		scanf("%s",rep);
		}
		while(strcmp(rep,"o") && strcmp(rep,"n"));
		
		fprintf(FIL_ATTENTE, "%d %s %s\n",ID,PRENOM_PAT,NOM_PAT);
		while (strcmp(rep,"o")==0)
		{
		printf("Entrez l identite du patient : ");
		scanf("%d", &ID);
		printf("Entrez le prenom du patient : ");
		scanf("%s", PRENOM_PAT);
		printf("Entrez le nom du patient : ");
		scanf("%s", NOM_PAT);
		printf("\ntapez o pour continuer la saisie  ");
		scanf("%s",rep);
		fprintf(FIL_ATTENTE, "%d %s %s\n",ID,PRENOM_PAT,NOM_PAT);
		(*NBR++);}
		}
fclose(FICHE_PATIENT); 
}

void recherche_patient_immat(FILE *FICHE_PATIENT,int idr)
{int ID,find; char NOM_FICHIER[30],NOM_PAT[30],PRENOM_PAT[30];
FICHE_PATIENT = fopen("patient.txt" , "r");	
	find = 0;
	while ( !feof(FICHE_PATIENT) || find == 0)
	{
	if (ID == idr) {find=1;}
	}
	if (find == 0) printf("patient inexistant");
	else printf("\nle patient existe \n %d %s %s",ID,NOM_PAT,PRENOM_PAT);
fclose(FICHE_PATIENT);
}

void recherche_patient_nom(FILE *FICHE_PATIENT,char nomr[])
{int ID,find; char NOM_FICHIER[30],NOM_PAT[30],PRENOM_PAT[30];
FICHE_PATIENT = fopen("patient.txt" , " r ");
	find = 0;
	while (fscanf (FICHE_PATIENT, "%d %s %s",&ID,NOM_PAT,PRENOM_PAT) == 3)
	{
	if (strcmp(NOM_PAT,nomr) == 0) {find++; printf("\n %d %s %s",ID,NOM_PAT,PRENOM_PAT);}
	}
	if (find == 0) printf("patient inexistant");
fclose(FICHE_PATIENT);

}

void recherche_patient_prenom(FILE *FICHE_PATIENT,char prenomr[])
{int ID,find; char NOM_FICHIER[30],NOM_PAT[30],PRENOM_PAT[30];

FICHE_PATIENT = fopen("patient.txt" , "r");
	find = 0;
	while (fscanf (FICHE_PATIENT, "%d %s %s",&ID,NOM_PAT,PRENOM_PAT) == 3)
	{
	if (strcmp(PRENOM_PAT,prenomr) == 0) {find++;printf("\n %d %s %s",ID,NOM_PAT,PRENOM_PAT);}
	}
	if (find == 0) printf("patient inexistant");
fclose(FICHE_PATIENT);
}

void fil_attente(FILE *FILE_ATTENTE)
{
patient p;
FILE_ATTENTE = fopen("fileattente.txt", "r");
printf("\n\n *AFFICHAGE* \n");
	while (!feof(FILE_ATTENTE))
	{
	fscanf(FILE_ATTENTE, "%d %s %s %s %s\n",&(p.IM_PAT),p.NOM_PAT,p.PRENOM_PAT,p.PAYS_PAT,p.SANG_PAT);
	printf("%d",p.IM_PAT);
	printf("%s",p.NOM_PAT);
	printf("%s",p.PRENOM_PAT);
	printf("%s",p.PAYS_PAT);
	printf("%s",p.SANG_PAT);
	}
fclose(FILE_ATTENTE);
}

void nbr_lit(FILE *FICHE_LIT,int NBRL)
{
FICHE_LIT = fopen("nbrlit.txt" , "w+");
fprintf(FICHE_LIT,"%d",NBRL);
fclose (FICHE_LIT);
}


void calcul_NBR(FILE *FICHE_PATIENT,int *NBR)
{int ID; char NOM_FICHIER[30],NOM_PAT[30],PRENOM_PAT[30];
FICHE_PATIENT = fopen("patient.txt", "r");
*NBR=0;	
	while (!feof(FICHE_PATIENT))
	{
	fscanf(FICHE_PATIENT, "%d\n",&ID);
	fscanf(FICHE_PATIENT, "%s\n", NOM_PAT);
	fscanf(FICHE_PATIENT, "%s\n", PRENOM_PAT);
	*NBR++;
	}
fclose(FICHE_PATIENT);
}
